package org.linlinjava.litemall.db.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.linlinjava.litemall.db.models.Groupon;

import java.util.List;

public interface GrouponService extends IService<Groupon> {

    /**
     * 获取用户发起的团购记录
     *
     * @param userId
     * @return
     */
    public List<Groupon> queryMyGroupon(Long userId) ;

    /**
     * 获取用户参与的团购记录
     *
     * @param userId
     * @return
     */
    public List<Groupon> queryMyJoinGroupon(Long userId) ;

    /**
     * 根据OrderId查询团购记录
     *
     * @param orderId
     * @return
     */
    public Groupon queryByOrderId(Long orderId) ;

    /**
     * 获取某个团购活动参与的记录
     *
     * @param id
     * @return
     */
    public List<Groupon> queryJoinRecord(Long id) ;

    /**
     * 根据ID查询记录
     *
     * @param userId
     * @param id
     * @return
     */
    public Groupon queryById(Long userId, Long id) ;

    /**
     * 返回某个发起的团购参与人数
     *
     * @param grouponId
     * @return
     */
    public int countGroupon(Long grouponId) ;

    public boolean hasJoin(Long userId, Long grouponId) ;


    /**
     * 查询所有发起的团购记录
     *
     * @param rulesId
     * @param page
     * @param size
     * @return
     */
    public IPage<Groupon> querySelective(String rulesId, Integer page, Integer size);

    public List<Groupon> queryByRuleId(Long grouponRuleId) ;
}
